Problem Solving [백준] 1032: 명령 프롬프트 [Bronze_I] 정답 비율 53% 파일 이름의 개수 N회 입력받기 N회 반복: 파일 이름 입력받아 배열에 저장 N은 50보다 작거나 같은 자연수, 파일 이름의 길이는 최대 50이므로 파일 이름을 입력받을 배열은 50글자를 저장할 공간이 50개 있는 2차원 배열 N-1회(파일의 수-1) 반복: 문자열(파일 이름)의 길이 만큼 반복하며 각 글자가 같은지 확인 다르다면 '?' 대입 문자열 출력... Problem SolvingCC [백준] 1110: 더하기 사이클 [Bronze_I] 정답 비율 46% 복잡한 연산 -> 함수로 만들어 코드를 분리하자 (입력받은 수)와 (함수의 리턴 값)이 같을 때까지 반복: (입력받은 수)와 (함수의 리턴 값) 비교 다르면 cycle(반복횟수) ++ (입력받은 수)와 (함수의 리턴 값)이 처음부터 같다면? (if (cycle==0) cycle = 1 ) 문제가 쉬워서 크게 배운 점은 없었다. 복잡한 연산은 함수로 만들어... Problem SolvingCC [백준] 1145: 적어도 대부분의 배수 [Bronze_I] 정답 비율 59% 적어도 세 개로? 가장 작은 수를 n배하면서 3개로 나눠지는지 봐야하나? -> 그럼 1 2 3 4 5 같은 케이스가 안됨 3개씩 묶어 최소공배수를 구해야 하나? -> Bronze_I 문제 주제에 너무 복잡함. 최소공배수 공식 모름. 브루트 포스(brute force) 알고리즘 : 완전탐색 알고리즘. 가능한 모든 경우의 수를 탐색하면서 요구조건에 충족되는 ... Problem SolvingCC [백준] 4673: 셀프 넘버 [Silver_V] 정답 비율: 48% 생성자를 찾기는 힘들다. 배열을 만들고 생성자가 있는 수를 따로 표시해서 제외하는 방향으로 하자. 생성자를 찾는 계산은 따로 함수로 만들자 처음엔 result가 10000보다 큰 수가 나오면 바로 종료시켰는데, 그랬더니 뒷부분의 생성자가 있는 수들 중에 몇 개가 제외되지 않고 그대로 출력되었다. 알고보니 반복의 마지막즈음에 result가 10000보다 ... Problem SolvingCC 2448. 별 찍기 - 11 시간 제한: 1초 메모리 제한: 256MB 예제를 보니, 기본 삼각형(N=3)으로 패턴이 이루어져 있다. 삼각형 전체를 출력하기 위해선, 파트를 세 개로 쪼개면서 풀면 된다. 로 풀 수 있을 것 같다. NxW char Array를 ' '로 초기화 한다. Divide: N 줄 짜리 삼각형을 아래와 같이 N / 2 줄 짜리 삼각형 3개(A, B, C)로 쪼갠다. Conquer: 이를 계속 반복하... Divide and conquerProblem SolvingDivide and conquer 1987. 알파벳 시간 제한: 2초 메모리 제한: 256MB 최적의 경로를 선택할 수 있는 규칙은 따로 없고, 가능한 경우를 모두 조사하는 수밖에 없다. 현재까지의 경로를 함께 저장하며, 순회하면 된다. 이때, k 거리의 동일한 칸이라도 지나온 경로에 따라 다른 경우가 되기 때문에, BFS를 하면 Queue에 지수적으로 추가된다. 반면에, DFS는 거리만큼 stack에 쌓으면서 들어가므로, 메모리에 부담이 비... GraphProblem SolvingBacktrackingBacktracking 백준 1504 : 특정한 최단 경로 최단 경로라는 문제의 조건과 주어지는 간선들의 비용이 모두 양수이므로, 문제를 잠깐만 살펴보더라도, 다익스트라 문제임을 알 수 있었다. distance 배열에는 시작노드를 기준으로 거리 0, 그외의 배열들에는 inf값으로 초기화 되어 있으며, 그래프를 탐색하며 최단거리값을 갱신한다. 한 노드를 방문하게 됐을 때, 해당 노드를 기준으로 연결된 모든 노드들까지의 cost를 고려해서 해당 노드를 ... Problem SolvingProblem Solving [프로그래머스] 힙(Heap) 디스크 컨트롤러 _ 자바Java | 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. 이 때 각 작업의 요청부터 종료까지 걸린 시... Problem SolvingProblem Solving [LeetCode][Java] Remove Element Given an integer array nums and an integer val, remove all occurrences of val in nums in-place. The relative order of the elements may be changed. Since it is impossible to change the length of the array in some language... leetcodeJavaProblem SolvingalgorithmJava [프로그래머스][JS]압축 문제: initKey: 위의 사진처럼 기본 keyObj 초기화해준다. (아스키코드 이용) msg를 앞에서부터 character을 순회하면서 진행한다. slice하는 구간을 한칸씩 늘려가면서 keyObj에 있는지 체크한다. const nowStr = msg.slice(i, i + sliceNum).join('') nowStr이 keyObj의 key배열에 있는지 확인해 있는지 없는지 확인한다. ... Problem Solving프로그래머스압축Problem Solving 숫자 게임 (Sort) 두 정수 배열이 주어질 때 한 배열을 기준으로 정수를 하나씩 비교해서 더 크면 승점을 얻는 게임이 있을 때 배열의 순서를 조합하여 얻을 수 있는 가장 큰 승점을 반환하는 것이 목적이다. 예를 들어 [5,1,3,7]과 [2,2,6,8]이 주어질 때 [2,2,6,8]을 [8,2,6,2]로 조합하면 최대 점수인 3점을 얻을 수 있다. 원소 2는 원소 1보다 크다. 결과적으로 3번 우승하기 때문에 ... Problem SolvingProblem Solving [LeetCode][Java] Swap Nodes In Pairs Given a linked list, swap every two adjacent nodes and return its head. You must solve the problem without modifying the values in the list's nodes (i.e., only nodes themselves may be changed.) The number of nodes in the... leetcodeJavaProblem SolvingalgorithmJava [Swift] 모의고사 - 프로그래머스 Lv 1 Swift로 프로그래머스 모의고사 문제를 해결하며 얻은 지식을 정리합니다. 문제는 enumerated()를 이용하여 index와 value를 얻는 방식으로 해결하였지만, 제출 당시에는 하나의 테스트 케이스에서 시간 초과가 발생했었다. 현재는 지속적으로 제출하여도 문제 없어보인다. Dictionary - keys and values - Apple Developer... Problem Solving프로그래머스알고리즘swiftProblem Solving [LeetCode][Java] Longest Palindromic Substring 유명한 알고리즘 문제 팔린드롬 문제입니다! 테스트에선 본 적은 없지만 여러 알고리즘 사이트에 기본적으로 나오는 문제에요. 알아두면 좋은 문제라 생각합니다. Given a string s, return the longest palindromic substring in s. 1 <= s.length <= 1000 s consist of only digits and English letters. ... leetcodeJavaProblem SolvingalgorithmJava Reverse Linked List II (Linked List) 첫 번째 노드부터 마지막 노드까지 오름차순 값을 가진 노드들의 연결 리스트를 주어진 범위만큼 뒤집어서 반환하는 것이다. 예를 들어 노드 1, 노드 2, 노드 3, 노드 4, 노드 5가 있을 때 2번째 노드부터 4번째 노드까지 뒤집어서 반환하라고 하면 노드 1, 노드 4, 노드 3, 노드 2, 노드 5 순서로 바뀌어서 반환되어야 한다. 생각해볼 수 있는 방법은 i 번째 노드부터 j 번째 노드까... Problem SolvingProblem Solving
[백준] 1032: 명령 프롬프트 [Bronze_I] 정답 비율 53% 파일 이름의 개수 N회 입력받기 N회 반복: 파일 이름 입력받아 배열에 저장 N은 50보다 작거나 같은 자연수, 파일 이름의 길이는 최대 50이므로 파일 이름을 입력받을 배열은 50글자를 저장할 공간이 50개 있는 2차원 배열 N-1회(파일의 수-1) 반복: 문자열(파일 이름)의 길이 만큼 반복하며 각 글자가 같은지 확인 다르다면 '?' 대입 문자열 출력... Problem SolvingCC [백준] 1110: 더하기 사이클 [Bronze_I] 정답 비율 46% 복잡한 연산 -> 함수로 만들어 코드를 분리하자 (입력받은 수)와 (함수의 리턴 값)이 같을 때까지 반복: (입력받은 수)와 (함수의 리턴 값) 비교 다르면 cycle(반복횟수) ++ (입력받은 수)와 (함수의 리턴 값)이 처음부터 같다면? (if (cycle==0) cycle = 1 ) 문제가 쉬워서 크게 배운 점은 없었다. 복잡한 연산은 함수로 만들어... Problem SolvingCC [백준] 1145: 적어도 대부분의 배수 [Bronze_I] 정답 비율 59% 적어도 세 개로? 가장 작은 수를 n배하면서 3개로 나눠지는지 봐야하나? -> 그럼 1 2 3 4 5 같은 케이스가 안됨 3개씩 묶어 최소공배수를 구해야 하나? -> Bronze_I 문제 주제에 너무 복잡함. 최소공배수 공식 모름. 브루트 포스(brute force) 알고리즘 : 완전탐색 알고리즘. 가능한 모든 경우의 수를 탐색하면서 요구조건에 충족되는 ... Problem SolvingCC [백준] 4673: 셀프 넘버 [Silver_V] 정답 비율: 48% 생성자를 찾기는 힘들다. 배열을 만들고 생성자가 있는 수를 따로 표시해서 제외하는 방향으로 하자. 생성자를 찾는 계산은 따로 함수로 만들자 처음엔 result가 10000보다 큰 수가 나오면 바로 종료시켰는데, 그랬더니 뒷부분의 생성자가 있는 수들 중에 몇 개가 제외되지 않고 그대로 출력되었다. 알고보니 반복의 마지막즈음에 result가 10000보다 ... Problem SolvingCC 2448. 별 찍기 - 11 시간 제한: 1초 메모리 제한: 256MB 예제를 보니, 기본 삼각형(N=3)으로 패턴이 이루어져 있다. 삼각형 전체를 출력하기 위해선, 파트를 세 개로 쪼개면서 풀면 된다. 로 풀 수 있을 것 같다. NxW char Array를 ' '로 초기화 한다. Divide: N 줄 짜리 삼각형을 아래와 같이 N / 2 줄 짜리 삼각형 3개(A, B, C)로 쪼갠다. Conquer: 이를 계속 반복하... Divide and conquerProblem SolvingDivide and conquer 1987. 알파벳 시간 제한: 2초 메모리 제한: 256MB 최적의 경로를 선택할 수 있는 규칙은 따로 없고, 가능한 경우를 모두 조사하는 수밖에 없다. 현재까지의 경로를 함께 저장하며, 순회하면 된다. 이때, k 거리의 동일한 칸이라도 지나온 경로에 따라 다른 경우가 되기 때문에, BFS를 하면 Queue에 지수적으로 추가된다. 반면에, DFS는 거리만큼 stack에 쌓으면서 들어가므로, 메모리에 부담이 비... GraphProblem SolvingBacktrackingBacktracking 백준 1504 : 특정한 최단 경로 최단 경로라는 문제의 조건과 주어지는 간선들의 비용이 모두 양수이므로, 문제를 잠깐만 살펴보더라도, 다익스트라 문제임을 알 수 있었다. distance 배열에는 시작노드를 기준으로 거리 0, 그외의 배열들에는 inf값으로 초기화 되어 있으며, 그래프를 탐색하며 최단거리값을 갱신한다. 한 노드를 방문하게 됐을 때, 해당 노드를 기준으로 연결된 모든 노드들까지의 cost를 고려해서 해당 노드를 ... Problem SolvingProblem Solving [프로그래머스] 힙(Heap) 디스크 컨트롤러 _ 자바Java | 문제 설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. 이 때 각 작업의 요청부터 종료까지 걸린 시... Problem SolvingProblem Solving [LeetCode][Java] Remove Element Given an integer array nums and an integer val, remove all occurrences of val in nums in-place. The relative order of the elements may be changed. Since it is impossible to change the length of the array in some language... leetcodeJavaProblem SolvingalgorithmJava [프로그래머스][JS]압축 문제: initKey: 위의 사진처럼 기본 keyObj 초기화해준다. (아스키코드 이용) msg를 앞에서부터 character을 순회하면서 진행한다. slice하는 구간을 한칸씩 늘려가면서 keyObj에 있는지 체크한다. const nowStr = msg.slice(i, i + sliceNum).join('') nowStr이 keyObj의 key배열에 있는지 확인해 있는지 없는지 확인한다. ... Problem Solving프로그래머스압축Problem Solving 숫자 게임 (Sort) 두 정수 배열이 주어질 때 한 배열을 기준으로 정수를 하나씩 비교해서 더 크면 승점을 얻는 게임이 있을 때 배열의 순서를 조합하여 얻을 수 있는 가장 큰 승점을 반환하는 것이 목적이다. 예를 들어 [5,1,3,7]과 [2,2,6,8]이 주어질 때 [2,2,6,8]을 [8,2,6,2]로 조합하면 최대 점수인 3점을 얻을 수 있다. 원소 2는 원소 1보다 크다. 결과적으로 3번 우승하기 때문에 ... Problem SolvingProblem Solving [LeetCode][Java] Swap Nodes In Pairs Given a linked list, swap every two adjacent nodes and return its head. You must solve the problem without modifying the values in the list's nodes (i.e., only nodes themselves may be changed.) The number of nodes in the... leetcodeJavaProblem SolvingalgorithmJava [Swift] 모의고사 - 프로그래머스 Lv 1 Swift로 프로그래머스 모의고사 문제를 해결하며 얻은 지식을 정리합니다. 문제는 enumerated()를 이용하여 index와 value를 얻는 방식으로 해결하였지만, 제출 당시에는 하나의 테스트 케이스에서 시간 초과가 발생했었다. 현재는 지속적으로 제출하여도 문제 없어보인다. Dictionary - keys and values - Apple Developer... Problem Solving프로그래머스알고리즘swiftProblem Solving [LeetCode][Java] Longest Palindromic Substring 유명한 알고리즘 문제 팔린드롬 문제입니다! 테스트에선 본 적은 없지만 여러 알고리즘 사이트에 기본적으로 나오는 문제에요. 알아두면 좋은 문제라 생각합니다. Given a string s, return the longest palindromic substring in s. 1 <= s.length <= 1000 s consist of only digits and English letters. ... leetcodeJavaProblem SolvingalgorithmJava Reverse Linked List II (Linked List) 첫 번째 노드부터 마지막 노드까지 오름차순 값을 가진 노드들의 연결 리스트를 주어진 범위만큼 뒤집어서 반환하는 것이다. 예를 들어 노드 1, 노드 2, 노드 3, 노드 4, 노드 5가 있을 때 2번째 노드부터 4번째 노드까지 뒤집어서 반환하라고 하면 노드 1, 노드 4, 노드 3, 노드 2, 노드 5 순서로 바뀌어서 반환되어야 한다. 생각해볼 수 있는 방법은 i 번째 노드부터 j 번째 노드까... Problem SolvingProblem Solving